---
id: 5dc2385ff86c76b9248c6eb7
title: 步骤 5
challengeType: 0
dashedName: step-5
---

# --description--

HTML5 有些元素能够指明不同的内容区域。 这些元素能让你的 HTML 易于阅读，并有助于搜索引擎优化（SEO）和无障碍访问。

The `main` element is used to represent the main content of the body of an HTML document. Content inside the `main` element should be unique to the document and should not be repeated in other parts of the document.

```html
<main>
  <h1>Most important content of the document</h1>
  <p>Some more important content...</p>
</main>
```

通过在 `h1` 元素之前添加 `<main>` 开始标签和在 `p` 元素之后添加 `</main>` 结束标签来标识此页面的主要部分。

# --hints--

你的 `main` 元素应该有一个开始标签。 开始标签的书写语法为：`<elementName>`。

```js
assert(document.querySelector('main'));
```

你的 `main` 元素应该有一个结束标签。 结束标签在 `<` 字符后面要有一个 `/`。

```js
assert(code.match(/<\/main\>/));
```

你的 `main` 元素的开始标签应该在 `body` 元素的下方。 你把顺序写错了。

```js
const main = document.querySelector('main');
assert.equal(main?.previousElementSibling, null);
```

你的 `main` 元素的开始标签应该在 `h1` 元素上方。 你把顺序写错了。

```js
const collection = [...document.querySelectorAll('main,h1')].map(
  (node) => node.nodeName
);
assert(collection.indexOf('MAIN') < collection.indexOf('H1'));
```

你的 `main` 元素的结束标签应该在 `p` 元素的下方。 你把顺序写错了。

```js
const mainNode = document.querySelector('main');
const pNode = document.querySelector('p');
assert(
  mainNode.contains(pNode) &&
    pNode.textContent.toLowerCase().match(/see more cat photos in our gallery/)
);
```

# --seed--

## --seed-contents--

```html
<html>
  <body>
--fcc-editable-region--

    <h1>CatPhotoApp</h1>
    <h2>Cat Photos</h2>
    <!-- TODO: Add link to cat photos -->
    <p>See more cat photos in our gallery.</p>

--fcc-editable-region--
  </body>
</html>
```

